package com.enjoyor.soa.traffic.api.service.dubbo.psas;

import com.enjoyor.soa.traffic.api.dto.psas.PreplanInfoDto;
import com.enjoyor.soa.traffic.api.dto.psas.PreplanLocationDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

public interface IDubboPreplanInfoService {

	/**
	 * 获取预案信息分页
	 * @param page
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	ResultPojo getPreplanInfoPage(Page page);
	
	/**
	 * 获取预案基础信息列表
	 * @param preplanId
	 * @param preplanName
	 * @param preplanTypeId
	 * @param preplanTypeName
	 * @param preplanLevelId
	 * @param preplanLevelName
	 * @param preplanStatusId
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	ResultPojo getPreplanBaseInfoList(String preplanId, String preplanName, String preplanTypeId,
									  String preplanTypeName, String preplanLevelId, String preplanLevelName, String preplanStatusId,
									  String preplanStatusName, String preplanClassId,String preplanClassName,Date startTime, Date endTime);
	
	/**
	 * 获取预案详细信息列表（基础信息+地图信息）
	 * @param preplanId
	 * @param preplanName
	 * @param preplanTypeId
	 * @param preplanTypeName
	 * @param preplanLevelId
	 * @param preplanLevelName
	 * @param preplanStatusId
	 * @param prepalanStatusName
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	ResultPojo getPreplanDetailInfoList(String preplanId,String preplanName,String preplanTypeId,
			String preplanTypeName,String preplanLevelId,String preplanLevelName,String preplanStatusId,
			String prepalanStatusName,String preplanClassId,String preplanClassName,Date startTime,Date endTime);
	
	/**
	 * 新增预案基础信息
	 * @param username
	 */
	ResultPojo addPreplanInfo(PreplanInfoDto preplanInfoDto,String username);
	
	/**
	 * 修改预案基础信息
	 * @param username
	 */
	ResultPojo editPreplanInfo(PreplanInfoDto preplanInfoDto,String username);
	
	/**
	 * 提交预案信息或者审核预案信息操作
	 * @param preplanId
	 * @param commitPerson
	 * @param commitTime
	 * @param auditPerson
	 * @param auditTime
	 * @param auditOpinion
	 * @param preplanStatusId
	 * @param preplanStatusName
	 * @param username
	 */
	ResultPojo operationPreplan(String preplanId, String commitPerson, Date commitTime, String auditPerson,
								Date auditTime, String auditOpinion, String publishPerson,Date publishTime,
								String preplanStatusId,String preplanStatusName, String username);
	
	/**
	 * 删除预案基础信息
	 * @param preplanId
	 * @param username
	 */
	ResultPojo deletePreplanInfo(String preplanId,String username);

	/****************************************************预案活动地点*****************************************************/
	/**
	 * 获取预案信息下所有活动地点数据
	 * @param preplanId
	 * @return
	 */
	ResultPojo getPreplanLocationList(String preplanId);

	/**
	 * 新增活动地点数据
	 * @param preplanLocationDto
	 */
	//ResultPojo addPreplanLocation(PreplanLocationDto preplanLocationDto, String username);

	/**
	 * 修改活动地点数据
	 * @param username
	 * @param preplanlocationDto
	 */
	//ResultPojo editPreplanLocation(PreplanLocationDto preplanlocationDto, String username);

	/**
	 * 删除活动地点数据
	 * @param username
	 */
	ResultPojo deletePreplanLocation(String locationId,String preplanId,String preplanStatusId , String username);

	/**
	 * 添加与修改预案的地理信息集合
	 * @param preplanLocationDto
	 * @param username
	 */
	ResultPojo drawPreplanGeoInfo(PreplanLocationDto preplanLocationDto, String preplanStatusId, String username);

	/**
	 * 保存预案信息下所有的活动地点数据
	 * @param preplanInfoDto
	 * @param currentUser
	 */
	//ResultPojo addAllLocationInfo(PreplanInfoDto preplanInfoDto, String currentUser);

	/**
	 * 获取活动地点数据
	 * @param locationId
	 * @return
	 */
	ResultPojo getLocationInfo(String locationId);

}
